feat: add flowsheet entry_type discriminated union with V2 API #134
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Add an explicit
entry_typediscriminated union to flowsheet entries in the database, with V1 API compatibility and a V2 playlist endpoint for clean discriminated union responses.Entry Types
trackshow_startshow_enddj_joindj_leavetalksetbreakpointmessageDatabase Changes
flowsheet_entry_typeenumentry_typecolumn with migration and backfillAPI Changes
V1 API - Additive change only:
entry_typefieldV2 API - Single endpoint:
V1 vs V2 Playlist Response
V1
/flowsheet/playlist: entries include all fields{ "entries": [{ "id": 123, "entry_type": "track", "artist_name": "Built to Spill", "message": null, ... }] }V2
/v2/flowsheet/playlist: entries use clean discriminated union (no irrelevant fields){ "entries": [{ "id": 123, "entry_type": "track", "artist_name": "Built to Spill", ... }] }Test plan
transformToV2()functionentry_typecompatibility testSELECT entry_type, COUNT(*) FROM flowsheet GROUP BY entry_type